using System;
using System.Data;
using Csla;
using Csla.Data;
using Microsoft.Practices.ServiceLocation;
using Utpl.Syllabus.Reconocimiento.BL;
using Utpl.Syllabus.Reconocimiento.DAL;
using Utpl.Syllabus.Framework.Common.Util;
using Utpl.Syllabus.Framework.Csla.Base;
using Utpl.Syllabus.Framework.Dal;
using Utpl.Syllabus.Infraestructure.DalAdo;

namespace Utpl.Syllabus.Reconocimiento.DalAdo
{
    /// <summary>
    /// Estereotipo: DAO
    /// Responsabilidad: Acceso a datos para la entidad PlanEstudio
    /// Autor: Luis Cuenca Macas - Enovatraining. Cia. Ltda.
    /// Fecha: 14/12/2012 10:12:12 AM
    /// </summary>
    public class PlanEstudioDao : GenericDaoBase
    {
        public PlanEstudioDao(IDatabase db)
            : base(ServiceLocator.Current.GetInstance<IDatabase>(Constantes.CONEXION_SIS_RECONOCIMIENTO))
        {
            SetParameterPrefix("pln_");

            RegisterQuery<PlanEstudioCriteria>(Constantes.PRC_OBT_PLANES_ESTUDIO);

        }

        private void AddCriteriaParameters(PlanEstudioCriteria criteria, IDbCommand comando)
        {
            _db.AddParameterWithValue(comando, "ec_pln_modalidad", criteria.CodigoNivelAcademico);
            _db.AddParameterWithValue(comando, "ec_pln_tipo_estudio", criteria.CodigoNivelAcademico);
        }
        
        void LoadFields(SafeDataReader sdr, PlanEstudioInfo item)
        {
            item.Codigo = sdr.GetString("pln_codigo");
            item.Nombre = sdr.GetString("pln_nombre");
            item.NivelAcademico = sdr.GetString("pln_nivel_academico");
            item.Modalidad = sdr.GetString("pln_modalidad");
            item.Descripcion = sdr.GetString("pln_descripcion");
            item.TipoAprobacion = sdr.GetString("tipo_aprobacion");

        }
    }
}